package com.wechat.page.api;

import java.util.List;
import java.util.concurrent.CompletableFuture;

import org.springframework.stereotype.Service;

import com.swak.annotation.FluxDepend;
import com.wechat.dto.ChatAddContactsDTO;
import com.wechat.dto.ChatDTO;
import com.wechat.dto.ContactDTO;
import com.wechat.service.ChatServiceAsync;

/**
 * ChatApi.
 * 
 * @author 618lf
 */
@Service
public class ChatApi {

	@FluxDepend
	private ChatServiceAsync chatService;

	/**
	 * 未读数量
	 * 
	 * @return
	 */
	public CompletableFuture<Integer> unreads() {
		return this.chatService.unreads();
	}

	/**
	 * 查询列表
	 * 
	 * @return
	 */
	public CompletableFuture<List<ChatDTO>> chats() {
		return this.chatService.list();
	}

	/**
	 * 创建一个聊天室
	 * 
	 * @param chat
	 * @return
	 */
	public CompletableFuture<ChatDTO> create(ChatAddContactsDTO addContacts) {
		return this.chatService.create(addContacts);
	}

	/**
	 * 创建一个单聊
	 * 
	 * @param chat
	 * @return
	 */
	public CompletableFuture<ChatDTO> create(ContactDTO contact) {
		return this.chatService.create(contact);
	}

	/**
	 * 使用現有的創建
	 * 
	 * @param chat
	 * @return
	 */
	public CompletableFuture<ChatDTO> create(ChatDTO chat) {
		return this.chatService.create(chat);
	}

	/**
	 * 修改属性：修改未读消息数
	 * 
	 * @param id
	 * @return
	 */
	public CompletableFuture<ChatDTO> updateFlag(ChatDTO chat) {
		return this.chatService.updateFlag(chat);
	}

	/**
	 * 拉取最新的数据
	 * 
	 * @param chat
	 * @return
	 */
	public CompletableFuture<ChatDTO> get(String id) {
		return this.chatService.get(id);
	}
}
